// 主题变量
:root {
  // 主色系
  --el-color-primary: #4080ff;
  --el-color-primary-light-1: #5690ff;
  --el-color-primary-light-2: #6ca0ff;
  --el-color-primary-light-3: #82b0ff;
  --el-color-primary-light-4: #98c0ff;
  --el-color-primary-light-5: #aed0ff;
  --el-color-primary-light-6: #c4e0ff;
  --el-color-primary-light-7: #daefff;
  --el-color-primary-light-8: #edf7ff;
  --el-color-primary-light-9: #f7faff;
  --el-color-primary-dark-2: #3370e5;
  
  // 功能色
  --el-color-success: #52c41a;
  --el-color-warning: #faad14;
  --el-color-danger: #f56c6c;
  --el-color-info: #909399;
  
  // 中性色
  --el-bg-color: #f9fbff;
  --el-border-color: #e0e6f5;
  --el-text-color-primary: #2c3e50;
  --el-text-color-regular: #4e5969;
  --el-text-color-secondary: #909399;
  
  // 其他变量
  --el-font-size-base: 14px;
  --el-border-radius-base: 6px;
  --el-box-shadow-light: 0 2px 12px 0 rgba(0, 0, 0, 0.05);
  
  // 聊天专用变量
  --theme-color: var(--el-color-primary);
  --theme-color-light: var(--el-color-primary-light-7);
  --theme-color-lighter: var(--el-color-primary-light-9);
  
  // 消息气泡颜色
  --chat-bubble-bg: #ffffff;
  --chat-bubble-self-bg: #ecf5ff;
  --chat-bubble-border: #eaedf1;
  --chat-bubble-self-border: #d7e6ff;
  --chat-quote-bg: #f7f9fc;
  --chat-quote-border: #e4e7ed;
  
  // 系统消息颜色
  --chat-system-tip-bg: #f0f9eb;
  --chat-system-tip-color: #67c23a;
  --chat-system-time-bg: #f5f7fa;
  --chat-system-time-color: #909399;
  --chat-system-recall-bg: #fef0f0;
  --chat-system-recall-color: #f56c6c;
  
  // 滚动条样式
  --scrollbar-thumb-color: rgba(208, 215, 229, 0.8);
  --scrollbar-track-color: transparent;
}

// 全局样式
body {
  font-family: 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', Arial, sans-serif;
  font-size: var(--el-font-size-base);
  color: var(--el-text-color-primary);
  background-color: var(--el-bg-color);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin: 0;
}

// 滚动条统一样式
::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}

::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb-color);
  border-radius: 10px;
}

::-webkit-scrollbar-track {
  background: var(--scrollbar-track-color);
}

// Element Plus 组件样式覆盖
.el-button {
  border-radius: var(--el-border-radius-base);
  transition: all 0.2s;
  
  &.el-button--primary {
    background-color: var(--el-color-primary);
    border-color: var(--el-color-primary);
    box-shadow: 0 2px 5px rgba(64, 128, 255, 0.15);
    
    &:hover, &:focus {
      background-color: var(--el-color-primary-light-2);
      border-color: var(--el-color-primary-light-2);
      transform: translateY(-1px);
      box-shadow: 0 4px 8px rgba(64, 128, 255, 0.2);
    }
    
    &:active {
      transform: translateY(0);
      box-shadow: 0 2px 5px rgba(64, 128, 255, 0.15);
    }
  }
  
  &.el-button--default {
    &:hover {
      color: var(--el-color-primary);
      border-color: var(--el-color-primary-light-5);
      background-color: var(--el-color-primary-light-9);
    }
  }
  
  &.el-button--text {
    &:hover {
      background-color: var(--el-color-primary-light-9);
    }
  }
}

.el-card {
  border-radius: 12px;
  border: 1px solid var(--el-border-color);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
  transition: all 0.3s;
  
  &:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
    transform: translateY(-2px);
  }
  
  .el-card__header {
    padding: 16px 20px;
    border-bottom: 1px solid var(--el-border-color);
    font-weight: 500;
  }
  
  .el-card__body {
    padding: 20px;
  }
}

.el-message-box {
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  
  .el-message-box__header {
    padding-bottom: 15px;
  }
  
  .el-message-box__title {
    font-size: 18px;
    font-weight: 500;
  }
  
  .el-message-box__content {
    padding: 20px 0;
  }
  
  .el-message-box__btns {
    padding-top: 15px;
  }
}

.el-dialog {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  
  .el-dialog__header {
    padding: 16px 20px;
    margin: 0;
    border-bottom: 1px solid var(--el-border-color);
    background-color: white;
  }
  
  .el-dialog__title {
    font-size: 18px;
    font-weight: 500;
    color: var(--el-text-color-primary);
  }
  
  .el-dialog__body {
    padding: 24px;
    color: var(--el-text-color-regular);
  }
  
  .el-dialog__footer {
    padding: 16px 20px;
    border-top: 1px solid var(--el-border-color);
    background-color: white;
  }
}

.el-menu {
  border: none;
  background-color: transparent;
}

.el-menu-item {
  height: 50px;
  line-height: 50px;
  border-radius: 6px;
  margin: 4px 8px;
  padding: 0 16px !important;
  
  &.is-active {
    background-color: var(--theme-color-lighter);
    color: var(--el-color-primary);
    font-weight: 500;
  }
  
  &:hover {
    background-color: var(--theme-color-lighter);
  }
}

.el-input {
  --el-input-hover-border-color: var(--el-color-primary-light-3);
  --el-input-focus-border-color: var(--el-color-primary);
  
  .el-input__wrapper {
    border-radius: var(--el-border-radius-base);
    transition: all 0.2s;
    
    &.is-focus {
      box-shadow: 0 0 0 1px var(--el-color-primary-light-3) inset;
    }
    
    &:hover {
      box-shadow: 0 0 0 1px var(--el-color-primary-light-5) inset;
    }
  }
}

.el-popover {
  border-radius: 8px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
}

.el-dropdown-menu {
  border-radius: 8px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
  
  .el-dropdown-menu__item {
    &:hover {
      background-color: var(--el-color-primary-light-9);
      color: var(--el-color-primary);
    }
  }
}

.el-tabs {
  .el-tabs__header {
    border-bottom-color: var(--el-border-color);
  }
  
  .el-tabs__nav-wrap::after {
    background-color: var(--el-border-color);
  }
  
  .el-tabs__item {
    color: var(--el-text-color-regular);
    
    &.is-active {
      color: var(--el-color-primary);
      font-weight: 500;
    }
    
    &:hover {
      color: var(--el-color-primary);
    }
  }
  
  .el-tabs__active-bar {
    background-color: var(--el-color-primary);
  }
}

.el-badge {
  .el-badge__content {
    border: none;
    font-weight: normal;
  }
}

.el-avatar {
  background-color: var(--el-color-primary-light-7);
  color: var(--el-color-primary);
  font-weight: 500;
}

.el-tag {
  &--primary {
    background-color: var(--el-color-primary-light-9);
    border-color: var(--el-color-primary-light-6);
    color: var(--el-color-primary);
  }
  
  &--success {
    background-color: #f0f9eb;
    border-color: #e1f3d8;
    color: var(--el-color-success);
  }
  
  &--warning {
    background-color: #fdf6ec;
    border-color: #faecd8;
    color: var(--el-color-warning);
  }
  
  &--danger {
    background-color: #fef0f0;
    border-color: #fde2e2;
    color: var(--el-color-danger);
  }
  
  &--info {
    background-color: #f4f4f5;
    border-color: #e9e9eb;
    color: var(--el-color-info);
  }
}

// 导航栏相关
.navi-bar {
  border-right: 1px solid var(--el-border-color) !important;
  background-color: var(--el-color-primary-light-9);
  
  .el-menu-item {
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;

    &:active {
      transform: scale(0.98);
    }

    &::after {
      content: '';
      position: absolute;
      width: 100%;
      height: 100%;
      background: var(--theme-color);
      opacity: 0;
      top: 0;
      left: 0;
      border-radius: 6px;
      transition: opacity 0.2s;
    }

    &:active::after {
      opacity: 0.1;
    }

    .icon {
      position: relative;
      z-index: 1;
      transition: all 0.3s ease;
    }

    &:hover .icon {
      transform: scale(1.1);
    }

    .link.router-link-active .icon {
      color: var(--theme-color) !important;
    }
  }
}

// 聊天组件相关样式
.chat-box {
  border-radius: var(--el-border-radius-base);
  overflow: hidden;
  
  .el-header, .el-footer {
    background-color: white;
    border-color: var(--el-border-color);
  }
  
  .im-chat-main {
    background-color: var(--el-bg-color);
  }
}

.chat-message-item {
  .system-message {
    .tip {
      background-color: var(--chat-system-tip-bg);
      color: var(--chat-system-tip-color);
    }
    
    .time {
      background-color: var(--chat-system-time-bg);
      color: var(--chat-system-time-color);
    }
    
    .recall {
      background-color: var(--chat-system-recall-bg);
      color: var(--chat-system-recall-color);
    }
  }
  
  .bubble {
    background-color: var(--chat-bubble-bg);
    border-color: var(--chat-bubble-border);
    
    &.self {
      background-color: var(--chat-bubble-self-bg);
      border-color: var(--chat-bubble-self-border);
    }
  }
  
  .quote {
    background-color: var(--chat-quote-bg);
    border-color: var(--chat-quote-border);
  }
}

// 按钮和交互元素
.el-button--primary,
.el-switch.is-checked .el-switch__core {
  background-color: var(--theme-color) !important;
  border-color: var(--theme-color) !important;
}

// 表单元素
.el-checkbox__input.is-checked .el-checkbox__inner,
.el-radio__input.is-checked .el-radio__inner,
.el-switch.is-checked .el-switch__core {
  background-color: var(--theme-color) !important;
  border-color: var(--theme-color) !important;
}

// 文字和链接
.el-tabs__item.is-active,
.el-link.el-link--primary,
.chat-file-name,
a,
.el-button--text {
  color: var(--theme-color) !important;
}

// 边框和背景
.el-tabs__active-bar,
.el-progress-bar__inner {
  background-color: var(--theme-color) !important;
}

// 聊天相关
.chat-msg-mine .chat-msg-bottom {
  .chat-msg-text {
    background-color: var(--theme-color-light) !important;
    border: none !important;

    &:before {
      border-left-color: var(--theme-color-light) !important;
    }

    &:after {
      display: none !important;
    }
  }
}

.chat-msg-tip {
  color: var(--theme-color) !important;
}

// 选中和悬浮效果
.friend-item.active,
.group-item.active,
.chat-item.active {
  background-color: var(--theme-color-lighter) !important;
  border-left: 3px solid var(--theme-color) !important;
}

.friend-item:hover,
.group-item:hover,
.chat-item:hover {
  background-color: var(--theme-color-lighter) !important;
}

// 输入框相关
.el-input__inner:focus,
.el-textarea__inner:focus {
  border-color: var(--theme-color) !important;
}

.el-input.is-active .el-input__inner, 
.el-input__inner:focus,
.el-textarea__inner:focus {
  border-color: var(--theme-color) !important;
}

// 消息提示
.unread-text {
  background-color: var(--theme-color) !important;
}

// 群成员标签
.role-tag.owner-tag,
.role-tag.admin-tag {
  background-color: var(--theme-color) !important;
}

// 其他交互元素
.el-dropdown-menu__item:focus,
.el-dropdown-menu__item:not(.is-disabled):hover,
.el-select-dropdown__item.selected,
.el-select-dropdown__item.hover,
.el-cascader-node.in-active-path, 
.el-cascader-node.is-active,
.el-tree-node.is-current > .el-tree-node__content {
  color: var(--theme-color) !important;
  background-color: var(--theme-color-lighter) !important;
}

// 边框颜色
.el-select .el-input.is-focus .el-input__inner,
.el-select .el-input__inner:focus {
  border-color: var(--theme-color) !important;
}

// 加载和进度
.el-loading-spinner .path {
  stroke: var(--theme-color) !important;
}

// 分割线
.el-divider__text {
  color: var(--theme-color) !important;
  background-color: white;
}

// 侧边栏
.group-side-member-list,
.friend-list-box,
.chat-list-box {
  border-right: 1px solid var(--el-border-color) !important;
}

// 头部和底部
.el-header,
.el-footer {
  border-color: var(--el-border-color) !important;
}

// 滚动条
.el-scrollbar__thumb {
  background-color: var(--scrollbar-thumb-color) !important;
}

// 弹窗
.el-dialog__headerbtn:focus .el-dialog__close, 
.el-dialog__headerbtn:hover .el-dialog__close {
  color: var(--theme-color) !important;
}

// 表格
.el-table th.el-table__cell {
  background-color: var(--theme-color-lighter) !important;
}

// 菜单
.el-menu-item:hover,
.el-submenu__title:hover {
  color: var(--theme-color) !important;
}

// 时间选择器
.el-date-table td.today span,
.el-date-table td.available:hover,
.el-date-picker__header-label:hover {
  color: var(--theme-color) !important;
}

.el-date-table td.current:not(.disabled) span {
  background-color: var(--theme-color) !important;
}

// 上传
.el-upload:hover {
  border-color: var(--theme-color) !important;
}

// 标签
.el-tag--primary {
  background-color: var(--theme-color-lighter) !important;
  border-color: var(--theme-color-light) !important;
  color: var(--theme-color) !important;
}

// 通知
.el-notification {
  border-left: 4px solid var(--theme-color) !important;
}

// 气泡确认框
.el-popconfirm__action {
  .el-button--primary {
    background-color: var(--theme-color) !important;
    border-color: var(--theme-color) !important;
  }
}